A computer network is a collection of interconnected computing devices that exchange data and share resources. In a packet-based network, such as the Internet, the computing devices communicate data by dividing the data into small blocks called packets. The packets are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
Certain devices within a network, referred to as routers, maintain routing information that describes available routes through the network. Each route defines a path between two locations on the network. Upon receiving an incoming data packet, the router examines header information within the packet to identify the destination for the packet. Based on the header information, the router accesses the routing information, selects an appropriate route for the packet and forwards the packet accordingly.
Multicasting is a form of communication that allows a source device to send a single packet for distribution to multiple destination devices. With multicasting, the source device sends a single packet over the network to a router configured for multicasting. The router replicates the packet and forwards the copies to other multicast-enabled routers. The other routers, in turn, replicate the packet and repeat the forwarding process so that each of the destination devices receives a copy of the packet.
In some cases, there is not a multicast-enabled route from a source device to a particular destination device, i.e., a route where every router thereon is multicast-enabled. In these cases, the particular destination device is unable to receive multicast packets using existing multicasting protocols. To gain maximum audience size, multicast content providers generate copies of the multicast packets addressed to each such destination device, i.e., unicast packet copies of the multicast packets, at the source of the multicast packets, and deliver the unicast packets to these destination devices from the source of the multicast packets.
Content providers may incur increased costs stemming from the generation and delivery of the unicast packets. These costs may include the increased processing and memory resources required to generate and uniquely address unicast packets for each such destination device. The content providers may have to use multiple servers to provide the multiple unicast packet copies of the multicast packets. Further, delivery of the multiple unicast packets may lead to greater bandwidth consumption within the local network for the content provider, and require that the content provider obtain a greater bandwidth connection to the Internet than would otherwise be required to deliver the single set of multicast packets, the cost of which will likely be passed to the content provider by an Internet Service Provider (ISP), or the like.